package Clases;

import java.util.Vector;

import javax.swing.JList;
import javax.swing.JOptionPane;


public class  Seccion  {
	
	private int NroSeccion, CantInscritos;
        Profesor objProfesor;
        Vector <Estudiante> arrEst = new Vector();
	public Seccion()
        {
            
        }
	public Seccion(int nroSeccion, int cantInscritos, Profesor profesor) {
		super();
		NroSeccion = nroSeccion;
		CantInscritos = cantInscritos;
		objProfesor = profesor;
	}

	public int getNroSeccion() {
		return NroSeccion;
	}

	public void setNroSeccion(int nroSeccion) {
		NroSeccion = nroSeccion;
	}

	public int getCantInscritos() {
		return CantInscritos;
	}

	public void setCantInscritos(int cantInscritos) {
		CantInscritos = cantInscritos;
	}

	public Profesor getProfesor() {
		return objProfesor;
	}

	public void setProfesor(Profesor profesor) {
		objProfesor = profesor;
	}
	
	public int ContarEstudiantes(){
		return this.arrEst.size();
	}
	
	public void IncluirEstudiante(Estudiante es){
		if (this.BuscarEstudiante(es.getCedula()).getCedula().equals("") )
			if (this.objProfesor.getCedula().equals(es.getCedula())){
				//System.out.println("**ATENCION**");
		        //System.out.println("La cedula le pertenece a un profesor");
				JOptionPane.showMessageDialog(null, "''ATENCION'' La cedula le pertenece a un profesor");
				}
			else		{		
				arrEst.add(es);
		//System.out.println("\tEl Estudiante " +es.getNombre()+"  "+es.getApellido()+"  fue inscrito en la seccion ");
		JOptionPane.showMessageDialog(null, "Estudiante inscrito");

			}
		else{
			//System.out.println("**ATENCION**");
//			System.out.println("El estudiante ya existe");
			JOptionPane.showMessageDialog(null, "''ATENCION'' El estudiante ya existe");
					
		}
        }
	
	public void RetirarEstudiante(Estudiante es){
            arrEst.remove(es);
		
	}
    
	private void listar()
        {
        	
        	
            for(int i=0;i<arrEst.size();i++)
            {
               
            	System.out.println( arrEst.elementAt(i).getEstudiante() );
            }


        }
    
	private void listar(JList lista)
        {
        	
        	Vector <String> arr = new Vector();
        	
            for(int i=0;i<arrEst.size();i++)
            {
               
            	arr.add( arrEst.elementAt(i).getEstudiante() );
            }
            lista.setListData(arr);


        }
        
	public Estudiante BuscarEstudiante(String Cedula){
            Estudiante es = new Estudiante();
            int pos=0;
            boolean enc=false;
            while (!enc && pos<arrEst.size() )
            {
                if (arrEst.elementAt(pos).getCedula().equals(Cedula) )
                    enc=true;
                else
                    pos++;
            }
            if (enc)
            {
                es=arrEst.elementAt(pos);
            }

		return es;
	}
	
	public void AplicarEvaluacion(){		
	
		if (arrEst.size()>0)
		{
			for(int i=0;i<arrEst.size();i++ )
			{
				arrEst.elementAt(i).PresentarEvalu();
				objProfesor.EvaluarNota(arrEst.elementAt(i));
				
				
			}
			//System.out.println("Las evaluaciones han sido aplicadas en la seccion");
			//System.out.println("Se calcularon la nota final de cada estudiante");
			
		}
		
		else{
			System.out.println("**ATENCION**");
			System.out.println("No hay estudiantes inscritos en la seccion");
		}
	}
	
	public void ListaEstuCedula(){
		if (arrEst.size()>0){
		for(int i=0;i<arrEst.size()-1;i++ )
                for(int j=i+1;j<arrEst.size();j++ )
                {
                    int aux1=Integer.parseInt(arrEst.elementAt(i).getCedula());
                    int aux2=Integer.parseInt(arrEst.elementAt(j).getCedula());

                    if(aux1>aux2)
                    {
                        Estudiante temp=arrEst.elementAt(i);
                        arrEst.setElementAt(arrEst.elementAt(j), i);
                        arrEst.setElementAt(temp, j);


                    }
                }
		}
		listar();
		}
	
		
	public void ListaEstuCedula(JList Lista){
			if (arrEst.size()>0){
			for(int i=0;i<arrEst.size()-1;i++ )
	                for(int j=i+1;j<arrEst.size();j++ )
	                {
	                    int aux1=Integer.parseInt(arrEst.elementAt(i).getCedula());
	                    int aux2=Integer.parseInt(arrEst.elementAt(j).getCedula());

	                    if(aux1>aux2)
	                    {
	                        Estudiante temp=arrEst.elementAt(i);
	                        arrEst.setElementAt(arrEst.elementAt(j), i);
	                        arrEst.setElementAt(temp, j);
	                    }
	                }
			}
			listar(Lista);
	}
		
	void ListaEstuNota(){
		if (arrEst.size()>0){
		for(int i=0;i<arrEst.size()-1;i++ )
            for(int j=i+1;j<arrEst.size();j++ )
            {
                if (arrEst.elementAt(i).getNotafinal()>arrEst.elementAt(j).getNotafinal()){
                	Estudiante temp=arrEst.elementAt(i);
                	arrEst.setElementAt(arrEst.elementAt(j), i);
                	arrEst.setElementAt(temp, j);
                }
            }
		listar();
	}
	else{
		System.out.println("**ATENCION**");
		System.out.println("No hay alumnos inscritos");
}
	}
	
	public void ListaEstuNota(JList lista){
		if (arrEst.size()>0){
		for(int i=0;i<arrEst.size()-1;i++ )
            for(int j=i+1;j<arrEst.size();j++ )
            {
                if (arrEst.elementAt(i).getNotafinal()>arrEst.elementAt(j).getNotafinal()){
                	Estudiante temp=arrEst.elementAt(i);
                	arrEst.setElementAt(arrEst.elementAt(j), i);
                	arrEst.setElementAt(temp, j);
                }
            }
		}
		listar(lista);
	}
	
            	
    void ListaEstuAprobado(){
    	if (arrEst.size()>0){
    	for(int i=0;i<arrEst.size();i++ )
    	{
    		if(arrEst.elementAt(i).getNotafinal()>=10){
                System.out.println( arrEst.elementAt(i).getEstudiante() );
    		}
    	}
    	}
    	else{
    		System.out.println("**ATENCION**");
    		System.out.println("No hay alumnos inscritos");
    }
    	}
    	
	void ListaEstuAplazado(){
		if (arrEst.size()>0){
		for(int i=0;i<arrEst.size();i++ )
    	{
    		if(arrEst.elementAt(i).getNotafinal()<10){
                System.out.println( arrEst.elementAt(i).getEstudiante() );
    		}
    	}
	}
	else{
		System.out.println("**ATENCION**");
		System.out.println("No hay alumnos inscritos");
}
	}
	
	public void ListaEstuAprobado(JList lista){
		Vector <String> vec = new Vector();
    	if (arrEst.size()>0){
    	for(int i=0;i<arrEst.size();i++ )
    	{
    		if(arrEst.elementAt(i).getNotafinal()>=10){
    			vec.add(arrEst.elementAt(i).getEstudiante() );
                //System.out.println( arrEst.elementAt(i).getEstudiante() );
    		}
    	}
    	lista.setListData(vec);
    	}
    	else{
    		System.out.println("**ATENCION**");
    		System.out.println("No hay alumnos inscritos");
    }
    	}
	
	public void ListaEstuAplazado(JList lista){
		Vector <String> vec = new Vector();
		if (arrEst.size()>0){
		for(int i=0;i<arrEst.size();i++ )
    	{
    		if(arrEst.elementAt(i).getNotafinal()<10){
    			vec.add(arrEst.elementAt(i).getEstudiante() );
///                System.out.println( arrEst.elementAt(i).getEstudiante() );
    		}
    	}
		lista.setListData(vec);
	}
	else{
		System.out.println("**ATENCION**");
		System.out.println("No hay alumnos inscritos");
}
	}

	public double PromedioNotas(){
		double acum=0; 
		double prom=0;
		if (arrEst.size()>0){
		for(int i=0;i<arrEst.size();i++ )
    	 acum+=arrEst.elementAt(i).getNotafinal();
		
		 prom = acum / arrEst.size();
		//System.out.println("El promedio es "+prom);
		

	}
		else{
			System.out.println("**ATENCION**");
			System.out.println("No hay alumnos inscritos");
	}
		return prom;
	}
	

public void PromedioNotas(JList lista){
	double acum=0; 
	if (arrEst.size()>0){
	for(int i=0;i<arrEst.size();i++ )
	 acum+=arrEst.elementAt(i).getNotafinal();
	
	double prom = acum / arrEst.size();
	System.out.println("El promedio es "+prom);

}
	else{
		System.out.println("**ATENCION**");
		System.out.println("No hay alumnos inscritos");
}
}
}

